#pragma once

interface IComparer
{
	int Compare(void* A, void* B);
};

template<class I, class T>
class BinaryTree
{
public:

	BinaryTree(IComparer* comparer);

	BinaryTree<I, T> *Left;
	BinaryTree<I, T> *Right;

	IComparer* Comparer;
	I Index;
	T Item;

	T FindItem(I index);

	void AddItem(I index, T item);
};
